#             第二节 程序流程控制
# 1、顺序结构 2、分支结构  3、循环结构
# 一、条件表达式：关系运算符、逻辑运算符

a,b=10,50
print('比较：',0<a<b)
print('==:',a==b)
print('!=:',a != b)# !=、
print("'ab'>'ba':",'ab'>'ba')#字符串按对于字符的Unicode编码进行比较；数字不能与字符串比较大小
#输出结果：
'''
比较： True
==: False
!=: True
'ab'>'ba': False
'''
# 逻辑运算符：and（并且），or（或者）和not（取反）。
m,n=2,3
print('or:',m>0 or n<0)
print('and :',m>0 and n>0)
print('not :', not(m>0 and n>0))
#输出：
'''
or: True
and : True
not : False
'''
#练习题：
import random
number1 = random.randint(0,9)#0-9之间的随机数
number2 = random.randint(0,9)
answer = eval(input('what is '+str(number1)+"+"+str(number2)+" ?"))
print(str(number1)+'+'+str(number2)+"=",answer," is",number1+number2==answer)
print(1,'a')
print('1','a')
print('1'+'a') #错误写法：1+'a' 说明：+是对两个字符串的拼接，此处中逗号是将 1和a隔开一段距离，实际上是两个数
#输出结果：
'''
what is 4+7 ?11
4+7= 11  is True
1 a
1 a
1a
'''

# 二、选择结构
# 单分支结构： if语句
a = eval(input('输入一个数a:'))
b = eval(input('输入一个数b:'))
print('输入数据:a={},b={}'.format(a,b))
if a < b :
    a,b = b,a
print('比较后数据:a={},b={}'.format(a,b))
#输出结果：
'''
输入一个数a:21
输入一个数b:53
输入数据:a=21,b=53
比较后数据:a=53,b=21
'''
#例如 2：
number = eval(input('输入一个数字：'))
if number%2==0 :
    print(number,'是：偶数')
if number%400 == 0 :
    print(number,"是：闰年")
# 输出结果：
'''
输入一个数字：2000
2000 是：偶数
2000 是闰:年
'''
#例如 3：猜数
import random  # from random import randint
number = random.randint(0,300)#0-300之间随机数
x = eval(input('请猜这个0-300之间随机数是：'))
if number == x :
    print('Bingo!')
# 请猜这个0-300之间随机数是：41

#双分支结构：if ...else 语句


#列子4：判断回文
s = input('请输入一段字符串：')
if s==s[::-1] :
    print(s+":是回文！")
else :
    print(s,":不是回文！")
#输出结果：
'''
请输入一段字符串：abbaabba
abbaabba:是回文！
请输入一段字符串：abcd
abcd :不是回文！
'''
#列子5：求三角形面积
import math
a = float(input('请输入三角形的表长a:'))
b = float(input('请输入三角形的边长b:'))
c = float(input('请输入三角形的边长c:'))
if (a+b)>c and (b+c)>a and (a+c)>b :
    h = (a+b+c)/2
    area = math.sqrt(h*(h-a)*(h-b)*(h-c))
    print('三角形的面积为：{:.2f}'.format(area))
else :
    print('输入数据有误，请输入正确的三边！')
#多分支结构：if...elif...else语句
#列子6：猜数字
import random
x = random.randint(0,100)
c = eval(input('请猜出0—100之间的数字：'))
if x == c :
    print('BingGO!')
elif c > x :
    print('数字猜大了！')
elif c < x :
    print('数字猜小了！')
#输出结果：
'''
请猜出0—100之间的数字：66
数字猜大了！
'''
#嵌套结构：if 语句的嵌套
#例子7：输出最大数
x = eval(input('请输入一个三位数：'))
x = str(x)
o = x[2] # 个位数字
p = x[1] # 十位数字
q = x[0] # 百位数字
if o > p :
    if o > q :
        number = o
    else :
        number = q
else :
    if p > q :
        number = p
    else :
        number = q
print('最大数字为：',number)        
'''
请输入一个三位数：123
最大数字为： 3
'''
#练习题 1：
from random import randint
m = randint(0,10)
n = randint(0,10)
print('What is'+str(m)+'+'+str(n)+'=?')
answer = eval(input(str(m)+"+"+str(n)+"="))
if (m+n) == answer :
    print('Good!')
else :
    print('Wrong!')
# 输出结果：
'''
What is4+6=?
4+6=10
Good!
'''
#练习题2 ：
#编写程序：根据输入分数的大小输出相应等级。
#          100-90:A;90-80:B;80-70:C;70-60:D;60以下F
g = float(input('请输入分数：'))
if g >= 90 :
    print("A")
elif g >= 80 :
    print("B")
elif g >= 70 :
    print('C')
elif g >= 60 :
    print('D')
else :
    print("F")
#输出结果：
'''
请输入分数：50.0
F
'''
